GtkCssProvider: Compare GtkWidgetPath regions with css.
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 22 Apr 2010 23:31:44 +0000 (01:31 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:37:08 +0000 (15:37 +0100)
gtk/gtkcssprovider.c

index e903ec5f3162af8ff94a45142a37ea6852a6e29f..93604885fdc0add946b73c5c88e68f9253fb6909 100644 (file)
@@ -384,6 +384,24 @@ compare_selector_element (GtkWidgetPath   *path,
 
       return TRUE;
     }
+  else if (elem->elem_type == SELECTOR_REGION)
+    {
+      const gchar *region_name;
+      GtkChildClassFlags flags;
+
+      /* FIXME: Need GQuark API here */
+      region_name = g_quark_to_string (elem->region.name);
+
+      if (!gtk_widget_path_iter_has_region (path, index, region_name, &flags))
+        return FALSE;
+
+      if (elem->region.flags != 0 &&
+          (flags & elem->region.flags) == 0)
+        return FALSE;
+
+      *score = 0xF;
+      return TRUE;
+    }
   else if (elem->elem_type == SELECTOR_GLOB)
     {
       /* Treat as lowest matching type */